import axios from 'axios';

// 创建axios实例
const apiClient = axios.create({
  baseURL: 'https://api.example.com', // 替换为实际API基础URL
  timeout: 10000,
  headers: {
    'Content-Type': 'application/json'
  }
});

/**
 * 获取汽车资讯列表
 * @param {Object} params - 请求参数
 * @param {string} params.category - 资讯分类(all, industry, reviews, technology, events)
 * @param {number} params.page - 页码
 * @param {number} params.limit - 每页条数
 * @param {string} params.keyword - 搜索关键词
 * @returns {Promise<Object>} - 包含资讯列表和分页信息的响应对象
 */
export const getCarNews = async (params) => {
  try {
    const response = await apiClient.get('/car-news', { params });
    return response.data;
  } catch (error) {
    console.error('Error fetching car news:', error);
    // 统一错误处理
    if (error.response) {
      // 服务器返回错误
      throw new Error(`服务器错误: ${error.response.status} - ${error.response.data.message || '获取资讯失败'}`);
    } else if (error.request) {
      // 请求已发出但无响应
      throw new Error('网络错误，无法连接到服务器');
    } else {
      // 请求配置错误
      throw new Error('请求错误: ' + error.message);
    }
  }
};

/**
 * 获取资讯详情
 * @param {string} id - 资讯ID
 * @returns {Promise<Object>} - 资讯详情对象
 */
export const getNewsDetail = async (id) => {
  try {
    const response = await apiClient.get(`/car-news/${id}`);
    return response.data;
  } catch (error) {
    console.error(`Error fetching news detail ${id}:`, error);
    throw new Error('获取资讯详情失败，请稍后重试');
  }
};

export default {
  getCarNews,
  getNewsDetail
};